/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gui.utilities;

/**
 * Contains all the information about a node's architecture and operations
 * @author Arvanitis Ioannis
 */
public class NodeArchBean {
    private int numberOfNodes;
    private double energy_mWh;
    private boolean mobile;
    private float enConsMove;
    private float enConsIdle;
    private float enConsTransmit;
    private float enConsReceive;
    private float enConsProcess;
    private int daemonIntervalInSec;
    private float antennaRadPow;
    private float antennaThres;
    
    /**
     * Creates new form NodeArchBean
     * @param numberOfNodes The number of nodes in this category
     * @param energy_mWh Initial energy in mWh
     * @param mobile Mobility enabled or not
     * @param enConsMove Energy consumed while moving
     * @param enConsIdle Energy consumed in idle state
     * @param enConsTransmit Energy consumed while transmitting
     * @param enConsReceive Energy consumed while receiving
     * @param enConsProcess Energy consumed while processing
     * @param daemonInterval Time interval for internal operations
     * @param antennaRadPow Initial radiated power while transmitting
     * @param antennaThres Threshold for reception activation
     */
    public NodeArchBean(int numberOfNodes, double energy_mWh, boolean mobile,
            float enConsMove, float enConsIdle, float enConsTransmit, float enConsReceive,
            float enConsProcess, int daemonInterval, float antennaRadPow, float antennaThres) {
        this.numberOfNodes = numberOfNodes;
        this.energy_mWh = energy_mWh;
        this.mobile = mobile;
        this.enConsMove = enConsMove;
        this.enConsIdle = enConsIdle;
        this.enConsTransmit = enConsTransmit;
        this.enConsReceive = enConsReceive;
        this.enConsProcess = enConsProcess;
        this.daemonIntervalInSec = daemonInterval;
        this.antennaRadPow = antennaRadPow;
        this.antennaThres = antennaThres;
    }

    /**
     * Gets the number of nodes in this category
     * @return the number of nodes in this category
     */
    public int getNumberOfNodes() {
        return numberOfNodes;
    }

    /**
     * Sets the number of nodes in this category
     * @param numberOfNodes The number of nodes in this category
     */
    public void setNumberOfNodes(int numberOfNodes) {
        this.numberOfNodes = numberOfNodes;
    }

    /**
     * Gets the initial energy in mWh
     * @return the initial energy in mWh
     */
    public double getEnergy_mWh() {
        return energy_mWh;
    }

    /**
     * Sets the initial energy in mWh
     * @param energy Initial energy in mWh
     */
    public void setEnergy_mWh(double energy_mWh) {
        this.energy_mWh = energy_mWh;
    }

    /**
     * Gets the mobility ability
     * @return the mobility ability
     */
    public boolean isMobile() {
        return mobile;
    }

    /**
     * Sets the mobility ability
     * @param mobile Mobility ability
     */
    public void setMobile(boolean mobile) {
        this.mobile = mobile;
    }

    /**
     * Gets the energy consumed while moving
     * @return the energy consumed while moving
     */
    public float getEnConsMove() {
        return enConsMove;
    }

    /**
     * Sets the energy consumed while moving
     * @param enConsMove The energy consumed while moving
     */
    public void setEnConsMove(float enConsMove) {
        this.enConsMove = enConsMove;
    }

    /**
     * Gets the energy consumed in idle state
     * @return the energy consumed in idle state
     */
    public float getEnConsIdle() {
        return enConsIdle;
    }

    /**
     * Sets the energy consumed in idle state
     * @param enConsIdle The energy consumed in idle state
     */
    public void setEnConsIdle(float enConsIdle) {
        this.enConsIdle = enConsIdle;
    }

    /**
     * Gets the energy consumed while transcmitting
     * @return the energy consumed while transmitting
     */
    public float getEnConsTransmit() {
        return enConsTransmit;
    }

    /**
     * Sets the energy consumed while transmitting
     * @param enConsTransmit The energy consumed while transcmitting
     */
    public void setEnConsTransmit(float enConsTransmit) {
        this.enConsTransmit = enConsTransmit;
    }

    /**
     * Gets the energy consumed while receiving
     * @return the energy consumed while receiving
     */
    public float getEnConsReceive() {
        return enConsReceive;
    }

    /**
     * Sets the energy consumed while receiving
     * @param enConsReceive The energy consumed while receiving
     */
    public void setEnConsReceive(float enConsReceive) {
        this.enConsReceive = enConsReceive;
    }

    /**
     * Gets the energy consumed while processing
     * @return the energy consumed while processing
     */
    public float getEnConsProcess() {
        return enConsProcess;
    }

    /**
     * Sets the energy consumed while processing
     * @param enConsProcess The energy consumed while processing
     */
    public void setEnConsProcess(float enConsProcess) {
        this.enConsProcess = enConsProcess;
    }

    /**
     * Gets the time interval for updating the node's parameters
     * @return the time interval for updating the node's parameters
     */
    public int getDaemonIntervalInSec() {
        return daemonIntervalInSec;
    }

    /**
     * Sets the time interval for updating the node's parameters
     * @param daemonIntervalInSec Time interval for updating the node's parameters
     */
    public void setDaemonIntervalInSec(int daemonIntervalInSec) {
        this.daemonIntervalInSec = daemonIntervalInSec;
    }

    /**
     * Gets the antenna's radiated power in dBm
     * @return the antenna's radiated power in dBm
     */
    public float getAntennaRadPow() {
        return antennaRadPow;
    }

    /**
     * Sets the the antenna's radiated power in dBm
     * @param antennaThres The antenna's radiated power in dBm
     */
    public void setAntennaRadPow(float antennaRadPow) {
        this.antennaRadPow = antennaRadPow;
    }

    /**
     * Gets the antenna's threshold
     * @return the antenna's threshold
     */
    public float getAntennaThres() {
        return antennaThres;
    }

    /**
     * Sets the the antenna's threshold
     * @param antennaThres The antenna's threshold
     */
    public void setAntennaThres(float antennaThres) {
        this.antennaThres = antennaThres;
    }

    
}
